package com.ruoyi.system.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.time.LocalDateTime;

/**
 * 项目-阶段关联DO（对应t_project_stage_rel表）
 */
@Data
@TableName("t_project_stage_rel")
public class ConstructionProjectStageRelDO {

    /** 主键ID */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 施工项目ID（关联t_construction_project表） */
    @TableField("project_id")
    private Long projectId;

    /** 施工阶段ID（关联t_construction_stage表） */
    @TableField("stage_id")
    private Long stageId;

    /** 阶段在项目中的状态：0-未开始，1-进行中，2-已完成 */
    @TableField("stage_status")
    private Integer stageStatus;

    /** 逻辑删除：0-未删除，1-已删除（已完成阶段不可删除） */
    @TableLogic
    @TableField("is_deleted")
    private Integer isDeleted;
    /**
     * 施工团队ID（关联t_construction_team表）
     */
    @TableField("team_id")
    private Long teamId;

    /**
     * 施工负责人ID（关联sys_user表）
     */
    @TableField("leader_id")
    private Long leaderId;

    /**
     * 施工团队名称（冗余存储）
     */
    @TableField("team_name")
    private String teamName;

    /**
     * 施工负责人姓名（冗余存储）
     */
    @TableField("leader_name")
    private String leaderName;

    /**
     * 施工负责人联系电话
     */
    @TableField("leader_phone")
    private String leaderPhone;

    /** 阶段开始时间 */
    @TableField("start_time")
    private LocalDateTime startTime;

    /** 阶段结束时间 */
    @TableField("end_time")
    private LocalDateTime endTime;

    /** 创建时间（绑定时间） */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /** 更新时间（状态变更时间） */
    @TableField(value = "update_time", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}